package com.thread.other;

/**
 * 展示了在方法内部如何创建线程，当你准备好运行线程时，就可以调用这个方法，而在线程开始后，该方法将返回。
 * 如果该线程只是辅助操作，而不是该类的重要操作，那么这与在该类的构造器内部启动线程相比，可能是一种更加有用的方式
 * 
 * @author Administrator
 *
 */
public class ThreadMethod {

	private int countDown = 5;
	private Thread t;
	private String name;

	public ThreadMethod(String name) {
		this.name = name;
	}

	public void runTask() {
		if (t == null) {
			t = new Thread(name) {
				public void run() {
					while (true) {
						System.out.print(this + ",");
						if (--countDown == 0) {
							return;
						}
						try {
							sleep(10);
						} catch (InterruptedException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}

				public String toString() {
					return getName() + ": " + countDown;
				}
			};
		}
		t.start();
	}

	public static void main(String[] args) {
		new ThreadMethod("ThreadMethod").runTask();
		System.out.println("结束");
	}

}
